﻿//using BLL.Interface;
//using Common.Extensions;
//using DAL.Interface;
//using Microsoft.EntityFrameworkCore;
//using Model;
//using Model.DTO.Public.Get;
//using Model.DTO.Public.Id;
//using Model.DTO.Ware;
//using Model.Entity.Ware;

//namespace BLL
//{
//    /// <summary>
//    /// 商品业务逻辑层
//    /// </summary>
//    public class WareBLL : IWareBLL
//    {
//        private readonly IBaseDAL_LONG<TB_Ware> _wareDAL;
//        public WareBLL(IBaseDAL_LONG<TB_Ware> wareDAL)
//        {
//            _wareDAL = wareDAL;
//        }
//        /// <summary>
//        /// 添加商品
//        /// </summary>
//        /// <param name = "param" ></ param >
//        /// < returns ></ returns >
//        /// < exception cref="NotImplementedException"></exception>
//        public async Task<ResponseMessage> AddWare(EditWareDTO param)
//        {
//            try
//            {
//                //查询EAN13是否已存在
//                var query = await _wareDAL.GetEntityAllAsync(x => x.EAN13 == param.EAN13);
//                var sameExist = await query.AnyAsync();
//                if (sameExist)
//                {
//                    return ResponseMessage.CreateError("EAN13已存在");
//                }
//                var roleType = new TB_Ware();
//                param.CopyPropertiesTo(roleType);
//                var result = await _wareDAL.CreateEntityAsync(roleType);
//                return result ? ResponseMessage.CreateSuccess("添加成功") : ResponseMessage.CreateError("添加失败");
//            }
//            catch
//            {
//                return ResponseMessage.CreateError("添加失败");
//            }
//        }
//        /// <summary>
//        /// 删除商品
//        /// </summary>
//        /// <param name = "param" ></ param >
//        /// < returns ></ returns >
//        public async Task<ResponseMessage> DeleteWare(OperateIdDTO_LONG param)
//        {
//            try
//            {
//                bool result;
//                //优先处理Id，即单个删除
//                if (param.Id <= 0)
//                {
//                    if (param.Ids.Count == 0)
//                    {
//                        return ResponseMessage.CreateError("无效的商品Id");
//                    }
//                    //批量删除
//                    var successList = new List<long>();
//                    foreach (var wareId in param.Ids)
//                    {
//                        result = await _wareDAL.DeleteEntityByIdAsync(wareId);
//                        if (result)
//                        {
//                            successList.Add(wareId);
//                        }
//                    }
//                    return ResponseMessage.CreateSuccess($"删除成功({successList.Count}/{param.Ids.Count})", successList);
//                }
//                //单个删除
//                result = await _wareDAL.DeleteEntityByIdAsync(param.Id);
//                return result ? ResponseMessage.CreateSuccess("删除成功") : ResponseMessage.CreateError("删除失败");
//            }
//            catch
//            {
//                return ResponseMessage.CreateError("删除失败");
//            }
//        }
//        /// <summary>
//        /// 修改商品
//        /// </summary>
//        /// <param name = "param" ></ param >
//        /// < returns ></ returns >
//        public async Task<ResponseMessage> UpdateWare(EditWareDTO param)
//        {
//            try
//            {
//                if (param.Id <= 0)
//                {
//                    return ResponseMessage.CreateError("商品Id无效");
//                }
//                //查询商品Id是否存在
//                var query = await _wareDAL.GetEntityAllAsync(x => x.Id == param.Id);
//                var role = query.FirstOrDefault();
//                if (role == null)
//                {
//                    return ResponseMessage.CreateError("商品不存在");
//                }
//                //查询EAN13是否已存在
//                query = await _wareDAL.GetEntityAllAsync(x => x.Id != param.Id);
//                var sameExist = await query.Where(x => x.EAN13 == param.EAN13).AnyAsync();
//                if (sameExist)
//                {
//                    return ResponseMessage.CreateError("EAN13已存在");
//                }
//                //覆盖属性
//                param.CopyPropertiesTo(role);
//                var result = await _wareDAL.UpdateEntityAsync(role);
//                return result ? ResponseMessage.CreateSuccess("修改成功") : ResponseMessage.CreateError("修改失败");
//            }
//            catch
//            {
//                return ResponseMessage.CreateError("修改失败");
//            }
//        }
//        /// <summary>
//        /// 获取商品列表
//        /// </summary>
//        /// <param name = "param" ></ param >
//        /// < returns ></ returns >
//        public async Task<ResponseMessage> GetWareList(GetListDTO param)
//        {
//            try
//            {
//                var query = await _wareDAL.GetEntityAllAsync(x => x.Name.Contains(param.Query ?? string.Empty));
//                int total = await query.CountAsync();
//                #region 参数校验
//                if (param.Page <= 0)
//                {
//                    param.Page = 1;
//                }
//                if (param.Size <= 0)
//                {
//                    param.Size = 10;
//                }
//                #endregion
//                var list = await query.Skip((param.Page - 1) * param.Size).Take(param.Size).ToListAsync();
//                return ResponseMessage.CreateSuccess("获取成功", new { total, list });
//            }
//            catch
//            {
//                return ResponseMessage.CreateError("获取失败");
//            }
//        }
//    }
//}
